﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace _042082
{
    public partial class frm_Main : DevComponents.DotNetBar.Office2007RibbonForm
    {
        // Thứ tự các quyền hạn : Người quản trị(0)	Ban giám đốc(1)	Tiếp tân(2)	Người dùng khác(3)

        private string stringPower = "17,16,23,1,0_14,15,23,1,0,6,10,13,16_12,8,19,14,3,2,5,4,6,1,0,9,11,16,18,20,21,22,23_16,14,23,1,0";
       
        /* Biến này là một mảng gồm n LoạiUser. Mỗi LoạiUser có 1 vài quyền hạn nhất định. 
         * Mỗi quyền hạn được thao trên nhiều Buttons
         * và mỗi Button được thao tác với nhiều LoạiUser
         * Mỗi Button có 1 công việc riêng, có 1 name và 1 Id nhất định. Và chuỗi trên Lưu dạng như thế - THAM KHẢO THÊM BẢNG QUYỀN HẠNG.
         */

        private string[] ipower;

        public frm_Main()
        {
            InitializeComponent();
        }

        private void frm_Main_Load(object sender, EventArgs e)
        {
            // Disable tất cả các nút
            this.disableButtonsAll();

            /*Quyền hạn nào được chỉ ra mới kích hoạt từng nút phù hợp.
                1. Tách các quyền hạn của từng loại người dùng ra riêng ==> mảng ipower đản nhiệm Lưu 
                2. Nếu loại người dùng nào đăng nhập thì setId cho phù hợp
            */
            this.ipower=stringPower.Split(new char[] { '_' });
            // Mặc định là Ban Giám Đốc(Id=1)
            int idLoaiNguoiDung = 1;
            PhanQuyen(idLoaiNguoiDung);

            // Tạm thời đang viết soft nên --> Quyền cao nhất :D
            this.enableButtonsAll();

        }
        private void disableButtonsAll()
        {
            //List<DevComponents.DotNetBar.ButtonItem> lstB = new List<DevComponents.DotNetBar.ButtonItem>();
            //lstB[0].(this.btidpSoftAbout);
            this.btidpSoftAbout.Enabled = false;
            this.btidpSoftVersion.Enabled = false;
            this.btiHelpLBCTK.Enabled = false;
            this.btiHelpLDMP.Enabled = false;
            this.btiHelpLHDTT.Enabled = false;
            this.btiHelpLPTP.Enabled = false;
            this.btiHelpTCP.Enabled = false;
            this.btiHelpTDQD.Enabled = false;
            this.btiKHLapHoaDon.Enabled = false;
            this.btiKHQuanLyKH.Enabled = false;
            this.btiKHQuanLyLKH.Enabled = false;
            this.btiPLapDMP.Enabled = false;
            this.btiPLapPhieuThue.Enabled = false;
            this.btiPQuanLyLP.Enabled = false;
            this.btiPTraCuuPhong.Enabled = false;
            this.btiQTChangeRole.Enabled = false;
            this.btiQTLogin.Enabled = false;
            this.btiQTPower.Enabled = false;
            this.btiTXBackup.Enabled = false;
            this.btiTXBaoCaoTK.Enabled = false;
            this.btiTXExport.Enabled = false;
            this.btiTXImport.Enabled = false;
            this.btiTXRestore.Enabled = false;
            this.buttonItem_TOP_QLKS.Enabled = false;
        }
        private void enableButtonsAll()
        {
            this.btidpSoftAbout.Enabled = true;
            this.btidpSoftVersion.Enabled = true;
            this.btiHelpLBCTK.Enabled = true;
            this.btiHelpLDMP.Enabled = true;
            this.btiHelpLHDTT.Enabled = true;
            this.btiHelpLPTP.Enabled = true;
            this.btiHelpTCP.Enabled = true;
            this.btiHelpTDQD.Enabled = true;
            this.btiKHLapHoaDon.Enabled = true;
            this.btiKHQuanLyKH.Enabled = true;
            this.btiKHQuanLyLKH.Enabled = true;
            this.btiPLapDMP.Enabled = true;
            this.btiPLapPhieuThue.Enabled = true;
            this.btiPQuanLyLP.Enabled = true;
            this.btiPTraCuuPhong.Enabled = true;
            this.btiQTChangeRole.Enabled = true;
            this.btiQTLogin.Enabled = true;
            this.btiQTPower.Enabled = true;
            this.btiTXBackup.Enabled = true;
            this.btiTXBaoCaoTK.Enabled = true;
            this.btiTXExport.Enabled = true;
            this.btiTXImport.Enabled = true;
            this.btiTXRestore.Enabled = true;
            this.buttonItem_TOP_QLKS.Enabled = true;
        }
        private void PhanQuyen(int IdLoaiNguoiDung)
        {
            string[] tmpId = this.ipower[IdLoaiNguoiDung].Split(new char[] { ',' });
            //string[] tmpName = namebuttonItems.Split(new char[] { ',' });
            for (int i = 0; i < tmpId.Length; i++)
            {
                switch (tmpId[i])
                {
                    case "0": this.btidpSoftAbout.Enabled = true; break;
                    case "1": this.btidpSoftVersion.Enabled = true; break;
                    case "2": this.btiHelpLBCTK.Enabled = true; break;
                    case "3": this.btiHelpLDMP.Enabled = true; break;
                    case "4": this.btiHelpLHDTT.Enabled = true; break;
                    case "5": this.btiHelpLPTP.Enabled = true; break;
                    case "6": this.btiHelpTCP.Enabled = true; break;
                    case "7": this.btiHelpTDQD.Enabled = true; break;
                    case "8": this.btiKHLapHoaDon.Enabled = true; break;
                    case "9": this.btiKHQuanLyKH.Enabled = true; break;
                    case "10": this.btiKHQuanLyLKH.Enabled = true; break;
                    case "11": this.btiPLapDMP.Enabled = true; break;
                    case "12": this.btiPLapPhieuThue.Enabled = true; break;
                    case "13": this.btiPQuanLyLP.Enabled = true; break;
                    case "14": this.btiPTraCuuPhong.Enabled = true; break;
                    case "15": this.btiQTChangeRole.Enabled = true; break;
                    case "16": this.btiQTLogin.Enabled = true; break;
                    case "17": this.btiQTPower.Enabled = true; break;
                    case "18": this.btiTXBackup.Enabled = true; break;
                    case "19": this.btiTXBaoCaoTK.Enabled = true; break;
                    case "20": this.btiTXExport.Enabled = true; break;
                    case "21": this.btiTXImport.Enabled = true; break;
                    case "22": this.btiTXRestore.Enabled = true; break;
                    case "23": this.buttonItem_TOP_QLKS.Enabled = true; break;		
                }

            }

        }
        // Hàm chung cho việc mở form - Tiết kiệm vùng nhớ cục bộ - Ít gõ code - Kiểm soát code khoa học hơn 
        private void frmShow(DevComponents.DotNetBar.Office2007Form frm)
        {
            frm.MdiParent = this;
            frm.WindowState = FormWindowState.Maximized;
            frm.Show();
        }
        // Vùng Hàm thao tác Click trên Menu

        private void buttonItemLogin_Click(object sender, EventArgs e)
        {
            frmShow(new frmLogin());
        }

        private void buttonItemChangeRole_Click(object sender, EventArgs e)
        {
            frmShow(new frmThayDoiQD());
        }

        private void buttonItemPower_Click(object sender, EventArgs e)
        {
            frmShow(new frmQTHT());
        
        }

        private void btiPLapPhieuThue_Click(object sender, EventArgs e)
        {
            frmShow(new frmPhieuThue());
        }

        private void btiPTraCuuPhong_Click(object sender, EventArgs e)
        {
            frmShow(new frmTraCuuPhong());
        }

        private void btiPLapDMP_Click(object sender, EventArgs e)
        {
            frmShow(new frmPhong());
        }

        private void btiPQuanLyLP_Click(object sender, EventArgs e)
        {

        }

        private void btiKHLapHoaDon_Click(object sender, EventArgs e)
        {
            frmShow(new frmHoaDon());
        }

        private void btiKHQuanLyKH_Click(object sender, EventArgs e)
        {

        }

        private void btiKHQuanLyLKH_Click(object sender, EventArgs e)
        {

        }

        private void btiTXBaoCaoTK_Click(object sender, EventArgs e)
        {

        }

        private void btiTXExport_Click(object sender, EventArgs e)
        {

        }

        private void btiTXImport_Click(object sender, EventArgs e)
        {

        }

        private void btiTXBackup_Click(object sender, EventArgs e)
        {

        }

        private void btiTXRestore_Click(object sender, EventArgs e)
        {

        }

        private void btiHelpLDMP_Click(object sender, EventArgs e)
        {

        }

        private void btiHelpLPTP_Click(object sender, EventArgs e)
        {

        }

        private void btiHelpTCP_Click(object sender, EventArgs e)
        {

        }

        private void btiHelpLHDTT_Click(object sender, EventArgs e)
        {

        }

        private void btiHelpLBCTK_Click(object sender, EventArgs e)
        {

        }

        private void btiHelpTDQD_Click(object sender, EventArgs e)
        {

        }

        private void btidpSoftAbout_Click(object sender, EventArgs e)
        {

        }

        private void btidpSoftVersion_Click(object sender, EventArgs e)
        {

        }

        private void ribbonControlQLKS_Click(object sender, EventArgs e)
        {

        }

        private void frm_Main_FormClosing(object sender, FormClosingEventArgs e)
        {
            foreach (DevComponents.DotNetBar.Office2007Form f in this.MdiChildren)
            {
                if (!f.IsDisposed)
                    f.Close();
            }
        }
    }
}